package star.servlet_2;


import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;

import java.io.IOException;

/**
 * 什么是Session：
 * 1.服务器会给用户（浏览器）创建一个session对象。
 * 2.一个session独占一个浏览器，只要浏览器没有关闭，session就存在。
 * 3.用户登陆之后，整个网站都可以访问
 */

/**
 * Session 和 Cookie 的区别
 * 1.cookie是吧用户的数据写给用户的浏览器，浏览器保存（可以保存多个）
 *   session事把用户的数据写到独占session中，服务器端保存（只保存重要信息）
 * 2.session对象由服务器端创建
 */
public class Session_12_s1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //解决乱码问题  
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        //得到session
        HttpSession session = req.getSession();

        //给session中存东西
        session.setAttribute("name","star");

        //获取Session的ID
        String id = session.getId();

        //判断session是不是新创建的
        boolean is = session.isNew();
        if(is) {
            resp.getWriter().write("session创建成功，ID为："+ id);
        } else {
            resp.getWriter().write("session已经存在，ID为："+ id);
        }

        //Session创建的时候做了什么？ ---- 创建了名为JSESSIONID的cookie并将id放入其中
        Cookie cookie = new Cookie("JSESSIONID",id);
        resp.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}
